package com.bestcem.xm.cjm.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bestcem.xm.cjm.controller.vo.ClientJourneyVo;
import com.bestcem.xm.cjm.entity.CjmClientjourney;
import com.bestcem.xm.common.core.domain.web.XmResultJson;
import com.bestcem.xm.component.mybatis.service.IXmService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface CjmClientjourneyService extends IXmService<CjmClientjourney> {

    JSONObject postClientJourneys(JSONObject params);

    JSONObject deleteClientJourneyByid(String id);

    JSONObject putClientJourneys(String id, JSONObject params);

    JSONObject putUserClientJourneys(String id, JSONObject params);

    List<ClientJourneyVo> getPublishClientJourney(List<CjmClientjourney> list, String uid);

    ClientJourneyVo cjmToUserFrontv2(CjmClientjourney cjm, String uid);

    JSONObject clientJourneyPackageOrder(JSONObject params);

    Object deleteClientJourneys(JSONObject baseParams, JSONObject params, Integer superRole, String userId);

    JSONObject putClientJourneyEdit(String id, JSONObject params);

    JSONObject getClientJourneyEdit(String id);

    JSONObject postClientJourneyEdit(String id);

    XmResultJson<?> bindDashboard(CjmClientjourney clientjourney, JSONObject dashboard_data);

    JSONObject putClientJourneyEditV2(String id, JSONObject params);

    Object copyJourney(String id, JSONObject param);

    JSONObject clientJourneyImageUpload(MultipartFile file, String projectID, boolean keep_ext, boolean image_type_icon) throws Exception;

    JSONArray clientJourneyImagelibUpload(MultipartFile file, String projectID, boolean keep_ext, boolean image_type_icon) throws Exception;
}
